<?php

session_start();
echo '<meta charset="utf-8">';
$accessToken = $_SESSION['accessToken'];

// Obtenemos informacion basica del usuario
$url = "https://graph.facebook.com/me?access_token=$accessToken";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$respuesta = curl_exec($curl);
$datosUsuario = json_decode($respuesta);

$nombreUsuario = $datosUsuario->name;
$idUsuario = $datosUsuario->id;
$fechaNacimiento = $datosUsuario->birthday;

// Obtenemos sus mejores amigos con base en cuales estan tageados en las mismas fotos
$url = "https://graph.facebook.com/me/photos?access_token=$accessToken";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$respuesta = curl_exec($curl);
$datosTags = json_decode($respuesta);
$datosTags = $datosTags->data;
$arregloIdsAmigosEtiquetados = array();
foreach ($datosTags as $dato) {
    foreach ($dato->tags->data as $tag) {
        if ($tag->id != $idUsuario && $tag->id != '') {
            $arregloIdsAmigosEtiquetados[] = $tag->id;
        }
    }
}

$arregloOcurrenciasEtiquetados = array_count_values($arregloIdsAmigosEtiquetados);
arsort($arregloOcurrenciasEtiquetados);
$arregloOcurrenciasEtiquetados = array_keys($arregloOcurrenciasEtiquetados);
$arregloOcurrenciasEtiquetados = array_slice($arregloOcurrenciasEtiquetados, 0, 5);

$consultaFQL = urlencode('SELECT uid, name, pic_big FROM user WHERE uid IN (' . implode(',', $arregloOcurrenciasEtiquetados) . ')');
$url = "https://api.facebook.com/method/fql.query?format=json&query=$consultaFQL";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$respuesta = curl_exec($curl);
$datosAmigos = json_decode($respuesta);

$amigos = array();
foreach ($datosAmigos as $amigo) {
    $amigos[] = array('idUsuario' => $amigo->uid, 'nombre' => $amigo->name, 'foto' => $amigo->pic_big);
}

// Obtenemos los horoscopos
$arregloHoroscopos = array('aries' => null,
    'tauro' => null, 'geminis' => null,
    'cancer' => null,
    'leo' => null,
    'virgo' => null,
    'libra' => null,
    'escorpion' => null,
    'sagitario' => null,
    'capricornio' => null,
    'acuario' => null,
    'piscis' => null);
foreach ($arregloHoroscopos as $llave => $valor) {
    $doc = new DOMDocument();
    $doc->loadXML(utf8_encode(file_get_contents("http://www.aztecaespectaculos.com/horoscopos/rss/$llave.xml")));
    foreach ($doc->getElementsByTagName('item') as $node) {
        $elementoRSS = array(
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
            'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
        );
        $arregloHoroscopos[$llave] = $elementoRSS['desc'];
    }
}


// Obtenemos likes para los videos
$url = "https://graph.facebook.com/me/likes?access_token=$accessToken";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$respuesta = curl_exec($curl);
$datosLikes = json_decode($respuesta);
$datosLikes = $datosLikes->data;
$arregloNombresVideos = array();
foreach ($datosLikes as $like) {
    $arregloNombresVideos[] = urlencode($like->name);
}

// Obtenemos los videos de acuerdo a los likes
$videos = array();
for ($i = 1; $i <= 5; $i++) {
    $videoBuscar = $arregloNombresVideos[rand(0, sizeof($arregloNombresVideos) - 1)];
    $resultados = file_get_contents("http://gdata.youtube.com/feeds/api/videos?q=$videoBuscar&alt=json");
    $datosVideos = json_decode($resultados);

    try {
        $tConSignoPesos = '$t';
        $partesUrlVideo = explode('/', $datosVideos->feed->entry[rand(0, sizeof($datosVideos->feed->entry))]->id->$tConSignoPesos);
        $videos[] = array_pop($partesUrlVideo);
    } catch (Exception $e) {
        $i--;
    }
}

// Obtenemos los lugares de Foursquare
$clientId = '';
$clientSecret = '';
$latitud = 19.42705;
$longitud = -99.127571;
if (isset($_SESSION['ubicacion']['latitud']) && isset($_SESSION['ubicacion']['longitud'])) {
    $latitud = $_SESSION['ubicacion']['latitud'];
    $longitud = $_SESSION['ubicacion']['longitud'];
}
$url = "https://api.foursquare.com/v2/venues/explore?ll=$latitud,$longitud&client_id=$clientId&client_secret=$clientSecret";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$respuesta = curl_exec($curl);
$datosLugares = json_decode($respuesta);

$lugares = array();
$datosLugares = $datosLugares->response->groups[0]->items;
foreach ($datosLugares as $lugar) {
    $lugar = $lugar->venue;
    $lugares[] = array('nombre' => $lugar->name, 'latitud' => $lugar->location->lat, 'longitud' => $lugar->location->lng);
}

$infoUsuario = array();
$infoUsuario['nombre'] = $nombreUsuario;
$infoUsuario['idUsuario'] = $idUsuario;
$infoUsuario['fechaNacimiento'] = $fechaNacimiento;
$infoUsuario['ubicacion'] = array('latitud' => $latitud, 'longitud' => $longitud);
$infoUsuario['amigos'] = $amigos;
$infoUsuario['horoscopos'] = $arregloHoroscopos;
$infoUsuario['videos'] = $videos;
$infoUsuario['lugares'] = $lugares;

$_SESSION['infoUsuario'] = json_encode($infoUsuario);
include("perfil.html");
?>